if (pm.request.method == 'GET'){
    // AES加密Param脚本
    var CryptoJS = require("crypto-js");
    // 密钥
    var key = pm.environment.get("appSecret");
    // 要加密的文本 pm.request.url
    console.log("query内容如下")
    console.log(pm.request.url.query.all())
    // 获取全部querys参数
    var querys = pm.request.url.query.all();
    var str = 'timestamp='+new Date().getTime();
    for (let i = 0; i < querys.length; i++) {
        str += "&"+querys[i].key+"="+querys[i].value
    }
    // 拼接后结果
    console.log("Param拼接内容如下")
    console.log(str)
    // 将文本转换为字节数组
    var textBytes = CryptoJS.enc.Utf8.parse(str);
    // 创建AES密钥对象
    var secretKey = CryptoJS.enc.Utf8.parse(key);
    // 加密
    var encrypted = CryptoJS.AES.encrypt(textBytes, secretKey, {
        mode: CryptoJS.mode.ECB,
        padding: CryptoJS.pad.Pkcs7
    });
    // 获取加密后的Base64字符串
    var encryptedTextBase64 = encrypted.toString();
    encryptedTextBase64 = encryptedTextBase64.replaceAll('+', '-');
    encryptedTextBase64 = encryptedTextBase64.replaceAll('/', '_');
    console.log("加密后内容如下")
    console.log(encryptedTextBase64)
    // 清理掉之前query中的全部参数
    pm.request.url.query.clear();
    // 往query中添加内容
    pm.request.url.query.append({'key':encryptedTextBase64,'value':''})
    console.log("添加Param内容如下")
    console.log(pm.request.url.query.all())
}

// AES解密body脚本
var CryptoJS = require("crypto-js");
// 密钥
var key = pm.environment.get("appSecret");
console.log("response内容如下")
console.log(pm.response.text())
var responseText = pm.response.text();
responseText = responseText.replaceAll('-','+');
responseText = responseText.replaceAll( '_','/');
// 将Base64字符串解码为字节数组
var ciphertext = CryptoJS.enc.Base64.parse(responseText);
// 创建AES密钥对象
var secretKey = CryptoJS.enc.Utf8.parse(key);
// 解密
var decrypted = CryptoJS.AES.decrypt({ciphertext: ciphertext}, secretKey, {
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7
});
// 将解密后的字节数组转换为字符串
var decryptedText = decrypted.toString(CryptoJS.enc.Utf8);
console.log("解密后内容如下")
console.log(decryptedText)
pm.response.setBody(decryptedText);

if (pm.request.method == 'POST'){
    // AES加密body脚本
    var CryptoJS = require("crypto-js");
    // 添加时间戳
    var body = JSON.parse(pm.request.body.raw)
    body.timestamp = new Date().getTime()
    console.log("body内容如下")
    console.log(body)
    pm.request.body.raw = JSON.stringify(body)
    // 密钥
    var key = pm.environment.get("appSecret");
    // 要加密的文本 pm.request.body.raw
    var plainText = pm.request.body.raw.replace(/[\n\r\s]/g, '').trim();
    console.log("加密前内容如下")
    console.log(plainText)
    // 将文本转换为字节数组
    var textBytes = CryptoJS.enc.Utf8.parse(plainText);
    // 创建AES密钥对象
    var secretKey = CryptoJS.enc.Utf8.parse(key);
    // 加密
    var encrypted = CryptoJS.AES.encrypt(textBytes, secretKey, {
        mode: CryptoJS.mode.ECB,
        padding: CryptoJS.pad.Pkcs7
    });
    // 获取加密后的Base64字符串
    var encryptedTextBase64 = encrypted.toString();
    encryptedTextBase64 = encryptedTextBase64.replaceAll('+', '-');
    encryptedTextBase64 = encryptedTextBase64.replaceAll('/', '_');
    pm.request.body.raw = encryptedTextBase64
    console.log(encryptedTextBase64)
}
